[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
lfind() Linear Search for Key
#include <stdlib.h> Required for declarations only
void *lfind(key,base,num,width,compare);
const void *key; Search key
const void *base; Pointer to base of search data
size_t *num; Pointer to number of elements
size_t width; Width of elements
int (*compare)(const void *e1,const void *e2); Pointer to compare function
lfind() performs a linear search of a table of information. (Compare
this with bsearch(), which performs a binary search.) 'num' points
to the number of elements in the table, each element being 'width' in
size; 'base' is a pointer to the base of the array to be searched;
and 'key' is the item being sought. 'compare' points to a
user-supplied routine that compares two elements and returns a value
based on the comparison. 'compare' returns one of the following
values:
0 'e1' is identical to 'e2'
not 0 'e1' and 'e2' are different
Returns: A pointer to the first occurrence of 'key' in the
array pointed to by 'base'; NULL is returned if 'key'
is not found.
Notes: lfind() makes repeated calls to the 'compare' routine
during the search. On each call to 'compare', 'key'
is compared to one of the elements of 'base'.
lfind() does not require the array to be sorted (as
bsearch() does).
lfind() is similar to lsearch(), but lsearch() adds
'key' to the end of the list if it is not found,
whereas lfind() does not.
-------------------------------- Example ---------------------------------
The following statements search an array for a value and print out an
appropriate message.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int vals[] = {10,95,30,75,54,62,15,28,88,100};
int num = 10;
int key = 62;
int *found;
int cmp();
main()
{
found = (int*) lfind(&key,vals,&num,sizeof(int),cmp);
if (found)
printf("%d already in table\n",key);
else
printf("%d not found\n",key);
}
int cmp(n1,n2)
int *n1;
int *n2;
{
return(*n1 - *n2);
}
See Also:
bsearch()
lsearch()
qsort()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson